import knex from 'knex';
import { Logger } from '@nestjs/common';
import { Agent } from 'https';

const defaultAxiosConfig = {
  withCredentials: true,
  insecureHTTPParser: true,
  httpsAgent: new Agent({ rejectUnauthorized: false }),
  validateStatus: function (status) {
    if (status >= 200 || status <= 300) {
      return true;
    }
    if (status == 401) {
      return true;
    }
    return false;
  },
};

const dbConfig = {
  // connectionLimit: 10,
  client: 'mysql',
  host: '127.0.0.1', // 本地
  port: 3306, // 端口
  user: 'root', // 用户
  password: '12345678', // 密码
  database: 'onlyoffice', //数据名称
};

// const mysql = require('mysql2');
// const pool = mysql.createPool(dbConfig);

// const sqlQuery = (sql: string) => {
//   return new Promise<any>((resolve, reject) => {
//     const connection = mysql.createConnection(dbConfig);
//     pool.getConnection((error, connection) => {
//       if (error) {
//         reject(error);
//       } else {
//         connection.query(sql, (error, results) => {
//           if (error) {
//             reject(error);
//           } else {
//             resolve(results);
//           }
//           connection.release(); // 释放该链接，把该链接放回池里供其他人使用
//         });
//       }
//     });
//   });
// };

// const knexConnect = knex({
//   client: 'mysql2',
//   connection: dbConfig,
//   compileSqlOnError: true,
//   pool: { max: 10 },
//   log: {
//     warn(message) {},
//     error(message) {
//       Logger.error(message, 'knexConnect');
//     },
//     deprecate(message) {},
//     debug(message) {},
//   },
// });

// knexConnect
//   .select('name', 'age')
//   .from('users')
//   .where('age', '>', 18)
//   .orderBy('name', 'asc')
//   .then((rows) => {
//     console.log(rows);
//   })
//   .catch((err) => {
//     console.error(err);
//   });
// knexConnect('a1').select('*').then(rows => {
//   console.log(rows);
// }).finally(() => {
//   knexConnect.destroy();
// });

export { defaultAxiosConfig };
